Symbols Processing, JFW, version 2.0


Symbol processing is now functional.  There are additional settings in each of the JAWS Synth Files (.JSF) files (specified
on the synth= line of default.jcf).  For each context, there is  a
JAWSPunctuation= line.  (This is in addition to the Punctuation=
line which controls synth punctuation only.) Settings are 0 through
3, which correspond to None, Some, Most, and All respectively.

A new line in the Option section of .jcf files controls whether
JAWS or synthesizer punctuation processing is used.
JAWSPunctuationEnabled= 1 means to use JAWS punctuation processing.
"0" means just pass the punctuation symbols through to the
synthesizer and let it handle it.  This is selected in the Config Wizard, Text Processing dialog.

In order for JAWS punctuation processing to function, there needs
to be a symbols.ini file in the active language's settings
directory, e.g. \jfw\settings\enu\symbols.ini.  There is one
section in this file for each synthesizer type.  e.g.  [Accent
Symbols].  There is also a section  called [Synonyms] with lines of
the form

 acntsa17=accent
     kre=dectalk

which says that the names to the left of the equal sign are
synonyms for the names to the right.  This means that the [Accent
Symbols] section will be used for the acntsa17 driver and that the
[Dectalk Symbols] section will be used for the KRE driver.

Each [XXX Symbols] section contains a line of the form:
     SynthPunctuation=1
which indicates what that synthesizer's punctuation setting should
be when JAWS punctuation processing is enabled.  This may need to
be adjusted for your synthesizer: if you hear some symbols spoken
twice, or not spoken when they should be, then this may be set
wrong.  If you hear too much punctuation (symbols spoken twice)
then decrement this setting, e.g. "SynthPunctuation=0" (also see below).  
If you do not hear enough punctuation then increment this value, e.g.
"SynthPunctuation=2".

Each [XXX Symbols] section consists primarily of lines of the form

symbol1=! 10000011 exclaim
symbol2=" 10000011 quote

The Symbol1, Symbol2, ... tags are arbitrarily assigned, but each
must appear only once in each section.  The information following
the = can be divided into three parts, separated from one another
by a space.  First comes the symbol itself.  Next eight digits
(either 0 or 1), and lastly the word or words which should be
spoken as this symbol's name.  The eight digits indicate how this
symbol should be processed in each of the four punctuation modes
(All, Most, Some, and None).  The  first pair control behavior when
punctuation is set to all (3), the second pair when it is set to
Most (2)  and so on.  The first of each bit pair controls whether
or not the symbols name should be spoken when the symbol is
encountered.  The name is spoken when the bit is set to 1, it is
not spoken when it is set to 0.  The second bit of the pair
determines whether or not the symbol itself is sent out to the
synthesizer.  When this bit is 1, the symbol is stripped out, when
it is 0, it is sent to the synth.  It is possible to send the word or words for the symbol and the symbol itself, e.g. "left paren (".  Depending on the synthesizer, this could cause double speaking.  When this happens simply set the second bit to 1, "do not send symbol".

There are some special lines in the [XXX Symbols] section which
indicate what should be spoken when certain other things are
encountered in the text, such as decimal points, spaces, blanks, etc..  Naturally these can be edited by the user.

Dot=dot
Point=point
NumericComma=Comma
NumericColon=Colon
Space=space
Blank=blank

